Python দিয়ে লিনিয়ার রিগ্রেশন তৈরি

Supervised Learning মডেল - পাইথন কৃত্রিম বুদ্ধিমত্তা (Artificial Intelligence with Python) - Machine Learning

393

লিনিয়ার রিগ্রেশন হল একটি পরিসংখ্যানগত পদ্ধতি যা একটি নির্ভরশীল পরিবর্তনশীল (dependent variable) এবং একটি বা একাধিক স্বাধীন পরিবর্তনশীল (independent variable) এর মধ্যে সম্পর্ক খুঁজে বের করতে ব্যবহৃত হয়। এটি সাধারণত ভবিষ্যদ্বাণী বা প্রবণতা বিশ্লেষণ করার জন্য ব্যবহৃত হয়।

এখানে আমরা একটি সাধারণ লিনিয়ার রিগ্রেশন মডেল তৈরি করবো যা একটি নির্ভরশীল এবং একটি স্বাধীন ভেরিয়েবল নিয়ে কাজ করবে। এর জন্য আমরা Scikit-learn লাইব্রেরি ব্যবহার করব, যা মেশিন লার্নিং মডেল তৈরির জন্য একটি জনপ্রিয় পাইথন লাইব্রেরি।


১. লাইব্রেরি ইনস্টল করা

প্রথমে নিশ্চিত করুন যে আপনি Scikit-learn লাইব্রেরিটি ইনস্টল করেছেন। যদি না থাকে, তাহলে এটি ইনস্টল করতে পারেন:

pip install scikit-learn

২. লিনিয়ার রিগ্রেশন মডেল তৈরি করা

এখন আমরা একটি সাধারণ উদাহরণ দিয়ে দেখাবো যেখানে আমরা একটি নির্ভরশীল (y) এবং একটি স্বাধীন (x) ভেরিয়েবল ব্যবহার করবো।

কোড উদাহরণ:

# প্রয়োজনীয় লাইব্রেরি ইম্পোর্ট করা
import numpy as np
import matplotlib.pyplot as plt
from sklearn.linear_model import LinearRegression
from sklearn.model_selection import train_test_split
from sklearn.metrics import mean_squared_error, r2_score

# ডেটা তৈরি করা (x এবং y)
# ধরুন, x হলো বিজ্ঞাপনে ব্যয়, এবং y হলো বিক্রয়
x = np.array([1, 2, 3, 4, 5, 6, 7, 8, 9, 10]).reshape(-1, 1)  # বিজ্ঞাপনে ব্যয়
y = np.array([1, 2, 1.3, 3.75, 2.25, 4.3, 4.8, 5.2, 6.3, 7.8])  # বিক্রয়

# ডেটা ট্রেনিং এবং টেস্টিং সেটে ভাগ করা
x_train, x_test, y_train, y_test = train_test_split(x, y, test_size=0.2, random_state=42)

# লিনিয়ার রিগ্রেশন মডেল তৈরি করা
model = LinearRegression()

# মডেল প্রশিক্ষণ
model.fit(x_train, y_train)

# মডেল দ্বারা পূর্বাভাস করা
y_pred = model.predict(x_test)

# মডেলের পারফরম্যান্স মূল্যায়ন
print("Mean squared error:", mean_squared_error(y_test, y_pred))
print("R^2 score:", r2_score(y_test, y_pred))

# মডেল কোএফিসিয়েন্ট এবং ইন্টারসেপ্ট
print("Slope (Coefficient):", model.coef_)
print("Intercept:", model.intercept_)

# মডেলটির লাইন প্লট করা
plt.scatter(x, y, color='blue', label='Actual data')  # আসল ডেটা
plt.plot(x, model.predict(x), color='red', label='Regression line')  # রিগ্রেশন লাইন
plt.xlabel('Advertising Spend')
plt.ylabel('Sales')
plt.title('Linear Regression Example')
plt.legend()
plt.show()

কোডের ব্যাখ্যা:

  1. ডেটা তৈরি: এখানে আমরা একটি সিমুলেটেড ডেটাসেট তৈরি করেছি, যেখানে x হলো বিজ্ঞাপনে ব্যয় এবং y হলো বিক্রয়।
  2. ডেটা ভাগ করা: train_test_split() ফাংশনটি ডেটাকে প্রশিক্ষণ (training) এবং পরীক্ষণ (testing) সেটে ভাগ করে, যাতে আমরা প্রশিক্ষণ ডেটা দিয়ে মডেল ট্রেনিং করতে পারি এবং টেস্ট ডেটার উপর তার কার্যকারিতা যাচাই করতে পারি।
  3. মডেল প্রশিক্ষণ: LinearRegression() মডেল তৈরি করা হয় এবং fit() মেথড দিয়ে মডেলটি প্রশিক্ষিত হয়।
  4. পূর্বাভাস: মডেলটি predict() মেথড দিয়ে টেস্ট ডেটার উপর পূর্বাভাস প্রদান করে।
  5. মডেল মূল্যায়ন: mean_squared_error() এবং r2_score() মেথড দ্বারা মডেলটির কার্যকারিতা মূল্যায়ন করা হয়। r2_score() হলো মডেলটির পারফরম্যান্স মূল্যায়নের জন্য ব্যবহৃত স্কোর।
  6. গ্রাফ তৈরি: মডেলটির আসল ডেটা এবং রিগ্রেশন লাইনের সাথে একটি scatter plot তৈরি করা হয় যাতে আমরা আসল ডেটা এবং মডেল থেকে প্রাপ্ত রিগ্রেশন লাইনের তুলনা করতে পারি।

আউটপুট:

আপনি যখন এই কোডটি চালাবেন, তখন নিচের তথ্যগুলো দেখতে পাবেন:

  • Mean squared error: এটি মডেলটির পূর্বাভাসের গড় ত্রুটির মাপ।
  • R² score: এটি মডেলটির বৈশিষ্ট্যের মাপ, যেখানে ১ মানে পুরোপুরি সঠিক এবং ০ মানে মডেলটি কোনো তথ্যের সাথে সম্পর্কিত নয়।
  • Slope (Coefficient): এটি রিগ্রেশন লাইনের ঢাল, অর্থাৎ, প্রতি একক পরিবর্তনে y-মান কত পরিবর্তিত হয়।
  • Intercept: এটি রিগ্রেশন লাইনের ইন্টারসেপ্ট, অর্থাৎ, x = 0 হলে y-মান কী হবে।

এছাড়া, আপনি একটি গ্রাফ দেখতে পাবেন যেখানে আপনার আসল ডেটা এবং রিগ্রেশন লাইন একত্রে প্রদর্শিত হবে।


সারাংশ

এই উদাহরণে আমরা দেখলাম কীভাবে পাইথন দিয়ে একটি লিনিয়ার রিগ্রেশন মডেল তৈরি করতে হয়, যেখানে আমরা ডেটা বিশ্লেষণ করতে Scikit-learn লাইব্রেরি ব্যবহার করেছি। লিনিয়ার রিগ্রেশন মডেলটি ভবিষ্যদ্বাণী (prediction) করতে এবং ডেটার মধ্যে সম্পর্ক বুঝতে একটি খুবই শক্তিশালী উপায়।

Content added By
Promotion

Are you sure to start over?

Loading...